#pragma once
/* 8259A 芯片 */
#ifdef _8259A_
#define PIC_MASTER_CTRL_PORT (0x20)
#define PIC_SLAVE_CTRL_PORT (0xA0)
#define PIC_MASTER_DATA_PORT (0x21)
#define PIC_SLAVE_DATA_PORT (0xA1)
#endif
#ifdef _8253_
#define PIT_CONTROL_WORD_PORT ((DWORD)(0x43))
#define INTR_CLK_FREQUENCY ((DWORD)(60)) /* 每秒收到约 60 次中断（1 毫秒中断一次） */
#define PIT_COUNTER0_CLK_FREQUENCY ((DWORD)(1193180)) /* 计数器时钟脉冲信号频率 */
// #define PIT_COUNTER0_INIT_VALUE ((WORD)(PIT_COUNTER0_CLK_FREQUENCY / INTR_CLK_FREQUENCY)) /* 计数器初值，每产生一次时钟脉冲，计数器值减一 */
#define PIT_COUNTER0_INIT_VALUE ((WORD)(65535)) /* 计数器初值，每产生一次时钟脉冲，计数器值减一 */
#define PIT_COUNTER0_PORT ((WORD)(0x40))
#define PIT_COUNTER0_SELECTOR ((BYTE)(0b00 << 6)) /* 计数器选择通道 */
#define PIT_COUNTER0_RW_MODE ((BYTE)(0b11 << 4)) /* 锁存器读写方式 */
#define PIT_COUNTER0_MODE ((BYTE)(0b10 << 1)) /* 比率发生 */
#define PIT_BCD (1) /* 使用 BCD 码（默认为二进制） */ 
#endif